图片 1

  60. diskmgmt.msc—磁盘管理实用程序

 

下面介绍的方法是
用了一个未公开的函数NtQueryInformationProcess,获得进程信息,然后去读对方进程ReadProcessMemory。

  net user 用户名 密码 /add 建立用户

        输入passwd 用户名

有了PEB
则可以获得进程的各种信息,比如:模块、完整路径、命令行、环境变量、默认堆等等,参照结构体可得。

  net localgroup administrators 用户名 /add
把“用户”添加到管理员中使其具有管理员权限

   如果虚拟机装ubantu用来自己学习或者自己用的话密码可以设置的简单一些,或者可以设置为自动登录,然后就不用每次输入密码登录了(但你要保证自己登录的账户有管理员权限哦,要不然很多操作就无法进行了)

结构体是使用的一个模板,从别处借鉴的

  path 路径可执行文件的文件名 为可执行文件设置一个路径。

           注释:recovery mode —— 回复模式

// 枚举PEB.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "PEB.h"
#include <iostream>

using namespace std;





int main()
{
    HANDLE m_ProcessHandle;
    int PID;
    cout << "输入PID:";
    cin >> PID;

    m_ProcessHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);

    BOOL bSource = FALSE;
    BOOL bTarget = FALSE;
    //判断自己的位数
    IsWow64Process(GetCurrentProcess(), &bSource);
    //判断目标的位数
    IsWow64Process(m_ProcessHandle, &bTarget);

    if(bTarget == FALSE && bSource == TRUE)
    {
        HMODULE NtdllModule = GetModuleHandle(L"ntdll.dll");
        pfnNtWow64QueryInformationProcess64 NtWow64QueryInformationProcess64 = (pfnNtWow64QueryInformationProcess64)GetProcAddress(NtdllModule, "NtWow64QueryInformationProcess64");
        pfnNtWow64ReadVirtualMemory64 NtWow64ReadVirtualMemory64 = (pfnNtWow64ReadVirtualMemory64)GetProcAddress(NtdllModule, "NtWow64ReadVirtualMemory64");

        PROCESS_BASIC_INFORMATION64 pbi = { 0 };
        UINT64 ReturnLength = 0;

        NTSTATUS Status = NtWow64QueryInformationProcess64(m_ProcessHandle, ProcessBasicInformation, &pbi, (UINT32)sizeof(pbi), (UINT32*)&ReturnLength);

        if (NT_SUCCESS(Status))
        {

            _PEB64* Peb = (_PEB64*)malloc(sizeof(_PEB64));
            RTL_USER_PROCESS_PARAMETERS64* ProcessParameters = (RTL_USER_PROCESS_PARAMETERS64*)malloc(sizeof(RTL_USER_PROCESS_PARAMETERS64));
            Status = NtWow64ReadVirtualMemory64(m_ProcessHandle, (PVOID64)pbi.PebBaseAddress,
                (_PEB64*)Peb, sizeof(_PEB64), &ReturnLength);


            cout << "PebBaseAddress:" << hex << pbi.PebBaseAddress << endl;
            cout << "Ldr:" << hex << Peb->Ldr << endl;
            cout << "ImageBaseAddress:" << hex << Peb->ImageBaseAddress << endl;
        }
    }

    //自己是32  目标是32
    else if (bTarget == TRUE && bSource == TRUE)
    {
        HMODULE NtdllModule = GetModuleHandle(L"ntdll.dll");
        pfnNtQueryInformationProcess NtQueryInformationProcess = (pfnNtQueryInformationProcess)GetProcAddress(NtdllModule,
            "NtQueryInformationProcess");
        PROCESS_BASIC_INFORMATION32 pbi = { 0 };
        UINT32  ReturnLength = 0;
        NTSTATUS Status = NtQueryInformationProcess(m_ProcessHandle,
            ProcessBasicInformation, &pbi, (UINT32)sizeof(pbi), (UINT32*)&ReturnLength);
        if (NT_SUCCESS(Status))
        {
            _PEB32* Peb = (_PEB32*)malloc(sizeof(_PEB32));
            ReadProcessMemory(m_ProcessHandle, (PVOID)pbi.PebBaseAddress, (_PEB32*)Peb, sizeof(_PEB32), NULL);
            printf("PEB:%x\r\n", pbi.PebBaseAddress);
            printf("LdrAddress:%x\r\n", ((_PEB32*)Peb)->Ldr);
            printf("ImageBaseAddress:%x\r\n", ((_PEB32*)Peb)->ImageBaseAddress);
        }
    }




    return 0;
}

  regedit /e 注册表文件名 导出注册表

                 
 图片 2

实现方法:

  tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称

      
  图片 3 
  

 

  53. magnify——–放大镜实用程序

      ①你不知道你的用户名:

图片 4

  78. secpol.msc—–本地安全策略

      ②知道用户名:

#pragma once

#include <Windows.h>
#include <Strsafe.h>
#include <wchar.h>
#include <vector>


#define NT_SUCCESS(x) ((x) >= 0)

#define ProcessBasicInformation 0
typedef
NTSTATUS(WINAPI *pfnNtWow64QueryInformationProcess64)
(HANDLE ProcessHandle, UINT32 ProcessInformationClass,
    PVOID ProcessInformation, UINT32 ProcessInformationLength,
    UINT32* ReturnLength);

typedef
NTSTATUS(WINAPI *pfnNtWow64ReadVirtualMemory64)
(HANDLE ProcessHandle, PVOID64 BaseAddress,
    PVOID BufferData, UINT64 BufferLength,
    PUINT64 ReturnLength);

typedef
NTSTATUS(WINAPI *pfnNtQueryInformationProcess)
(HANDLE ProcessHandle, ULONG ProcessInformationClass,
    PVOID ProcessInformation, UINT32 ProcessInformationLength,
    UINT32* ReturnLength);

template <typename T>
struct _UNICODE_STRING_T
{
    WORD Length;
    WORD MaximumLength;
    T Buffer;
};

template <typename T>
struct _LIST_ENTRY_T
{
    T Flink;
    T Blink;
};

template <typename T, typename NGF, int A>
struct _PEB_T
{
    typedef T type;

    union
    {
        struct
        {
            BYTE InheritedAddressSpace;
            BYTE ReadImageFileExecOptions;
            BYTE BeingDebugged;
            BYTE BitField;
        };
        T dummy01;
    };
    T Mutant;
    T ImageBaseAddress;
    T Ldr;
    T ProcessParameters;
    T SubSystemData;
    T ProcessHeap;
    T FastPebLock;
    T AtlThunkSListPtr;
    T IFEOKey;
    T CrossProcessFlags;
    T UserSharedInfoPtr;
    DWORD SystemReserved;
    DWORD AtlThunkSListPtr32;
    T ApiSetMap;
    T TlsExpansionCounter;
    T TlsBitmap;
    DWORD TlsBitmapBits[2];
    T ReadOnlySharedMemoryBase;
    T HotpatchInformation;
    T ReadOnlyStaticServerData;
    T AnsiCodePageData;
    T OemCodePageData;
    T UnicodeCaseTableData;
    DWORD NumberOfProcessors;
    union
    {
        DWORD NtGlobalFlag;
        NGF dummy02;
    };
    LARGE_INTEGER CriticalSectionTimeout;
    T HeapSegmentReserve;
    T HeapSegmentCommit;
    T HeapDeCommitTotalFreeThreshold;
    T HeapDeCommitFreeBlockThreshold;
    DWORD NumberOfHeaps;
    DWORD MaximumNumberOfHeaps;
    T ProcessHeaps;
    T GdiSharedHandleTable;
    T ProcessStarterHelper;
    T GdiDCAttributeList;
    T LoaderLock;
    DWORD OSMajorVersion;
    DWORD OSMinorVersion;
    WORD OSBuildNumber;
    WORD OSCSDVersion;
    DWORD OSPlatformId;
    DWORD ImageSubsystem;
    DWORD ImageSubsystemMajorVersion;
    T ImageSubsystemMinorVersion;
    T ActiveProcessAffinityMask;
    T GdiHandleBuffer[A];
    T PostProcessInitRoutine;
    T TlsExpansionBitmap;
    DWORD TlsExpansionBitmapBits[32];
    T SessionId;
    ULARGE_INTEGER AppCompatFlags;
    ULARGE_INTEGER AppCompatFlagsUser;
    T pShimData;
    T AppCompatInfo;
    _UNICODE_STRING_T<T> CSDVersion;
    T ActivationContextData;
    T ProcessAssemblyStorageMap;
    T SystemDefaultActivationContextData;
    T SystemAssemblyStorageMap;
    T MinimumStackCommit;
    T FlsCallback;
    _LIST_ENTRY_T<T> FlsListHead;
    T FlsBitmap;
    DWORD FlsBitmapBits[4];
    T FlsHighIndex;
    T WerRegistrationData;
    T WerShipAssertPtr;
    T pContextData;
    T pImageHeaderHash;
    T TracingFlags;
    T CsrServerReadOnlySharedMemoryBase;
};

typedef _PEB_T<DWORD, DWORD64, 34> _PEB32;
typedef _PEB_T<DWORD64, DWORD, 30> _PEB64;

typedef struct _STRING_32
{
    WORD Length;
    WORD MaximumLength;
    UINT32 Buffer;
} STRING32, *PSTRING32;

typedef struct _STRING_64
{
    WORD Length;
    WORD MaximumLength;
    UINT64 Buffer;
} STRING64, *PSTRING64;

typedef struct _RTL_DRIVE_LETTER_CURDIR_32
{
    WORD Flags;
    WORD Length;
    ULONG TimeStamp;
    STRING32 DosPath;
} RTL_DRIVE_LETTER_CURDIR32, *PRTL_DRIVE_LETTER_CURDIR32;

typedef struct _RTL_DRIVE_LETTER_CURDIR_64
{
    WORD Flags;
    WORD Length;
    ULONG TimeStamp;
    STRING64 DosPath;
} RTL_DRIVE_LETTER_CURDIR64, *PRTL_DRIVE_LETTER_CURDIR64;

typedef struct _UNICODE_STRING_32
{
    WORD Length;
    WORD MaximumLength;
    UINT32 Buffer;
} UNICODE_STRING32, *PUNICODE_STRING32;

typedef struct _UNICODE_STRING_64
{
    WORD Length;
    WORD MaximumLength;
    UINT64 Buffer;
} UNICODE_STRING64, *PUNICODE_STRING64;


typedef struct _CURDIR_32
{
    UNICODE_STRING32 DosPath;
    UINT32 Handle;
} CURDIR32, *PCURDIR32;

typedef struct _RTL_USER_PROCESS_PARAMETERS_32
{
    ULONG MaximumLength;
    ULONG Length;
    ULONG Flags;
    ULONG DebugFlags;
    UINT32 ConsoleHandle;
    ULONG ConsoleFlags;
    UINT32 StandardInput;
    UINT32 StandardOutput;
    UINT32 StandardError;
    CURDIR32 CurrentDirectory;
    UNICODE_STRING32 DllPath;
    UNICODE_STRING32 ImagePathName;
    UNICODE_STRING32 CommandLine;
    UINT32 Environment;
    ULONG StartingX;
    ULONG StartingY;
    ULONG CountX;
    ULONG CountY;
    ULONG CountCharsX;
    ULONG CountCharsY;
    ULONG FillAttribute;
    ULONG WindowFlags;
    ULONG ShowWindowFlags;
    UNICODE_STRING32 WindowTitle;
    UNICODE_STRING32 DesktopInfo;
    UNICODE_STRING32 ShellInfo;
    UNICODE_STRING32 RuntimeData;
    RTL_DRIVE_LETTER_CURDIR32 CurrentDirectores[32];
    ULONG EnvironmentSize;
} RTL_USER_PROCESS_PARAMETERS32, *PRTL_USER_PROCESS_PARAMETERS32;


typedef struct _CURDIR_64
{
    UNICODE_STRING64 DosPath;
    UINT64 Handle;
} CURDIR64, *PCURDIR64;

typedef struct _RTL_USER_PROCESS_PARAMETERS_64
{
    ULONG MaximumLength;
    ULONG Length;
    ULONG Flags;
    ULONG DebugFlags;
    UINT64 ConsoleHandle;
    ULONG ConsoleFlags;
    UINT64 StandardInput;
    UINT64 StandardOutput;
    UINT64 StandardError;
    CURDIR64 CurrentDirectory;
    UNICODE_STRING64 DllPath;
    UNICODE_STRING64 ImagePathName;
    UNICODE_STRING64 CommandLine;
    UINT64 Environment;
    ULONG StartingX;
    ULONG StartingY;
    ULONG CountX;
    ULONG CountY;
    ULONG CountCharsX;
    ULONG CountCharsY;
    ULONG FillAttribute;
    ULONG WindowFlags;
    ULONG ShowWindowFlags;
    UNICODE_STRING64 WindowTitle;
    UNICODE_STRING64 DesktopInfo;
    UNICODE_STRING64 ShellInfo;
    UNICODE_STRING64 RuntimeData;
    RTL_DRIVE_LETTER_CURDIR64 CurrentDirectores[32];
    ULONG EnvironmentSize;
} RTL_USER_PROCESS_PARAMETERS64, *PRTL_USER_PROCESS_PARAMETERS64;



typedef struct _PROCESS_BASIC_INFORMATION64 {
    NTSTATUS ExitStatus;
    UINT32 Reserved0;
    UINT64 PebBaseAddress;
    UINT64 AffinityMask;
    UINT32 BasePriority;
    UINT32 Reserved1;
    UINT64 UniqueProcessId;
    UINT64 InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION64;

typedef struct _PROCESS_BASIC_INFORMATION32 {
    NTSTATUS ExitStatus;
    UINT32 PebBaseAddress;
    UINT32 AffinityMask;
    UINT32 BasePriority;
    UINT32 UniqueProcessId;
    UINT32 InheritedFromUniqueProcessId;
} PROCESS_BASIC_INFORMATION32;

  12. net start messenger—-开始信使服务

        

基于上一篇文章,大概了解了peb的获取方法,但是那个方法只能获得当前进程的PEB,不能获得其他的进程的PEB。根据那个思想,获得其他进程PEB则需要注入,得到进程信息,然后进程间通信,将信息返回来,经过考虑,这个方法太复杂。

  35. perfmon.msc—-计算机性能监测程序

      
  图片 5

如何对PEB结构体不是很清楚,可以用windeg调试一下,attach到进程,然后使用!peb命令。

  cmd 启动一个win2K命令解释窗口。参数:/eff、/en
关闭、开启命令扩展;更我详细说明见cmd /?

  2.选择第二个 【ubantu 高级选项】按 Enter进入,界面如下

  47. mem.exe——–显示内存使用情况

  5.按下F10后进入到下面的界面,此时有两种选择

  89. compmgmt.msc—计算机管理

                 
 图片 6

  net logoff 断开连接的共享

  刚知道有虚拟机的时候为了那啥(咳咳),花了好几天的时间装了很多的操作系统,像什么os
x、kali、red
hat、以前的win7什么的,甚至还有一个Android的虚拟机……扯偏了,然后最近学习到了Linux的知识,于是想起了虚拟机里好久没碰过的ubantu,然而悲催的是当初设置的密码忘记了,so百度了一下相关大佬滴经验,总结如下:

  copy ipadminsvv.exec:或:copyipadmin.
复制对方admini$共享下的srv.exe文件(所有文件)至本地C:

  1. 开机时一直按着shift键,进入像是windows bios界面一样的界面      

  73. syncapp——–创建一个公文包

                 
 图片 7  

  md 目录名 创建目录

    接着就会提示你输入新的密码,然后重启,我直接输入shutdown -h
now是无法直接关机的,提示找不到这个文件,所以直接在虚拟机软件里重启ubantu就可以了。

  22. devmgmt.msc— 设备管理器

  4.按向下箭头往下翻,在倒数第五行找到【recovery
nomodeset】并将之删除,然后下移一行,在行尾添加【quiet splash rw
init=/bin/bash】,按下F10

  net user guest /active:yes 激活guest用户

        输入passwd 

  100. chkdsk.exe—–Chkdsk磁盘检查

 

  color 颜色值
设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白

                 
 图片 8

  exit
退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe

  3.选择第三个版本最高的(-31),按【e】编辑启动项,不要按【Enter】,不要按【Enter】!

  84. ciadv.msc——索引服务程序

  netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况

  prompt 名称 更改cmd.exe的显示的命令提示符(把C:、D:统一改为:EntSky )

  type 文件名 显示文本文件的内容

  67. nslookup——-网络管理的工具向导

  nbtstat -A ip
对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名

  20. dfrg.msc——-磁盘碎片整理程序

  echo 信息 在屏幕上显示出信息

  kill -F 进程名
加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

  21. chkdsk.exe—–Chkdsk磁盘检查

  4. explorer——-打开资源管理器

  cacls 文件名 参数
显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D
用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G
用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C
更改(写入),F 完全控制;例:cacls D: est.txt /D pub 设定d:
est.txt拒绝pub用户访问。

  69. narrator——-屏幕“讲述人”

  net ver 局域网内正在使用的网络连接类型和信息

  48. Msconfig.exe—系统配置实用程序

  87. eventvwr——-事件查看器

  dir
查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间

  title 标题名字 更改CMD窗口标题名字

  36. winver———检查Windows版本

  at ip time 程序名(或一个命令) /r
在某时间运行对方某程序并重新启动计算机

  taskmgr 调出任务管理器

  for
对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)

  97. regsvr32 /u *.dll—-停止dll文件运行

  90. packager——-对象包装程序

  REM 文本内容 在批处理文件中添加注解

  format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D:
/FS:NTFS

  ping -t -l 65550 ip
死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

  30. mem.exe——–显示内存使用情况

  9. oobe/msoobe /a—-检查XP是否激活

  52. mplayer2——-媒体播放机

  net use ipipc$ /del 删除IPC链接

  net pause 服务名 暂停某服务

  ipconfig (winipcfg) 用于windows NT及XP(windows 95
98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息

  82. sfc.exe——–系统文件检查器

  netstat -a 查看开启了哪些端口,常用netstat -an

  55. mobsync——–同步命令

  99. cmd.exe——–CMD命令提示符

  doskey 要解锁命令=
为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey
dir=entsky (不能用doskey dir=dir);解锁:doskey dir=

  43. write———-写字板

  copy 1st.jpg/b+2st.txt/a 3st.jpg
将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件

  6. shutdown——-60秒倒计时关机命令

  cacls 文件名 查看文件的访问用户权限列表

  41. wupdmgr——–windows更新程序

  winver
弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)

  62. ddeshare——-打开DDE共享设置

  66. notepad——–打开记事本

  fc one.txt two.txt > 3st.txt
对比二个文件并把不同之处输出到3st.txt文件中,”> “和”> >”
是重定向命令

  net view ip 查看对方局域网内开启了哪些共享

发表评论

电子邮件地址不会被公开。 必填项已用*标注