Big Game Hunting - 44CON 2012

912 views

Published on

Tim Brown presents Big Game Hunting at 44CON 2012 in London, September 2012.

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
912
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
15
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Big Game Hunting - 44CON 2012

  1. 1. # Big Game Hunting_Simple techniques for bug hunting on big iron UNIX adversary@your.domain.tld:~$ ln ­s /important /tmp/backup.log adversary@your.domain.tld:~$ sudo ./backup.sh adversary@your.domain.tld:~$ ls ­la /important ­rw­rw­rw­ 1 root root 1798 Aug  2 10:39 /important
  2. 2. # whoami_ # Tim Brown # @timb_machine # Head Of Research at Portcullis  Computer Security Ltd # http://www.nth­dimension.org.uk/44con, London, 2012 Tim Brown 2 Portcullis Computer Security Ltd
  3. 3. # last_ # >15 years of UNIX experience # Background in telcos and finance # 9 years at Portcullis # More at  http://44con.com/speaker/tim­brown/44con, London, 2012 Tim Brown 3 Portcullis Computer Security Ltd
  4. 4. # cat .plan_ # Auditing # Problems # Solutions # Going further # Why? # The attack surface # In the real world # In the lab44con, London, 2012 Tim Brown 4 Portcullis Computer Security Ltd
  5. 5. # Auditing_ # Problems # Solutions44con, London, 2012 Tim Brown 5 Portcullis Computer Security Ltd
  6. 6. # Problems_ # Limited access # Varying OS capabilities # Multiple solutions # Differences in requirements44con, London, 2012 Tim Brown 6 Portcullis Computer Security Ltd
  7. 7. # Limited access_ # Client doesnt own the system # Client doesnt want to give (root)  access # System is physically unavailable # System is a black box44con, London, 2012 Tim Brown 7 Portcullis Computer Security Ltd
  8. 8. # Varying OS capabilites # Standards leave elements undefined # OS tool chain not sufficient # * GNU/Linux moves much faster than  commercial OS # Solaris 10 (much) > Solaris 844con, London, 2012 Tim Brown 8 Portcullis Computer Security Ltd
  9. 9. # Multiple solutions_ # How do you lock an account? # passwd ­l? # Change the shell? # Etc... # If you dont run sendmail, should  the configuration still be  hardened?44con, London, 2012 Tim Brown 9 Portcullis Computer Security Ltd
  10. 10. # Differences in  requirements_ # Which audit methodology do you use? # Vendors? # US DoD? # CIS? # Etc... # What if they differ significantly? # Would you know?44con, London, 2012 Tim Brown 10 Portcullis Computer Security Ltd
  11. 11. # Solutions_ # Better scripts # Gap analysis # C(ommon) C(onfiguration)  E(numeration)  # Smarter humans44con, London, 2012 Tim Brown 11 Portcullis Computer Security Ltd
  12. 12. # Gap analysis_ # We probably need to know what  different methodologies check for # I wish someone else had done it 44con, London, 2012 Tim Brown 12 Portcullis Computer Security Ltd
  13. 13. # C(ommon) C(onfiguration)  E(numeration)_ # They have (kinda): # http://cce.mitre.org/ # Incomplete # Missing various OS # Not sure I agree with their  methodology # No mention of gap analysis (AIX guy  may not know Solaris and vice  versa) # They consider outcome, not technique44con, London, 2012 Tim Brown 13 Portcullis Computer Security Ltd
  14. 14. # Smarter humans_ # I dont scale well! # We all need training when it comes  to stuff we dont see every day # Maybe talks like this will help  DevOps get their shit together?44con, London, 2012 Tim Brown 14 Portcullis Computer Security Ltd
  15. 15. # Going further_ # Why? # The attack surface # In the real world44con, London, 2012 Tim Brown 15 Portcullis Computer Security Ltd
  16. 16. # Why?_ # Bug hunting # More importantly, auditing fails to  answer the hard question – did you  want segregation of roles with  that?44con, London, 2012 Tim Brown 16 Portcullis Computer Security Ltd
  17. 17. # The attack surface_OS Kernel ServicesEnterprise apps Services Batch jobs User rolesDevOps Batch jobs User rolesUsers Misfortune Malice # If “everything is a file”, we need  to get better at analysing the  files...44con, London, 2012 Tim Brown 17 Portcullis Computer Security Ltd
  18. 18. # In the real world_ # The OS should protect us from  ourselves # Enterprise applications continue  accumulate features # DevOps will replace us all with  shell scripts44con, London, 2012 Tim Brown 18 Portcullis Computer Security Ltd
  19. 19. # OS flaws_ # Bad standards # Forks # Poor defaults # Incorrectly implemented separation  of privileges # Poorly implemented administrative  functionality # Incomplete anti­exploitation  mitigations44con, London, 2012 Tim Brown 19 Portcullis Computer Security Ltd
  20. 20. # Examples_ # Shared code such as CDE # Binaries owned by “bin” user # Binaries such as telnet and ftp  being SetUID  # WPAR isolation # Patching may be the problem, not  the solution44con, London, 2012 Tim Brown 20 Portcullis Computer Security Ltd
  21. 21. # Anti­exploit mitigations_Mitigation * GNU/Linux AIXMandatory access control Y N (Y in Trusted AIX)Non-executable stack Y N (select mode by default)ASLR Y NHardened malloc() Y N (Y with Watson malloc())Stack cookies and other Y (glibc) Ncompile time mitigationsmmap() NULL N N44con, London, 2012 Tim Brown 21 Portcullis Computer Security Ltd
  22. 22. # Non­executable stack?_# sedmgrStack Execution Disable (SED) mode: selectSED configured in kernel: select# find / ­perm ­u+s ­exec sedmgr ­d {} ; | grep ­v system/opt/IBMinvscout/sbin/invscout_lsvpd : Not a recognized executable format.#44con, London, 2012 Tim Brown 22 Portcullis Computer Security Ltd
  23. 23. # ASLR?_# ./aslrREMOVEsystem() = f1ab5d70bos.rte.libc                6.1.3.11        ROOT        REJECT      SUCCESSbos.rte.libc                6.1.3.11        USR         REJECT      SUCCESSADDsystem() = f1c05490bos.rte.libc                6.1.3.11        USR         APPLY       SUCCESSbos.rte.libc                6.1.3.11        ROOT        APPLY       SUCCESSREMOVEsystem() = f1d4bd70bos.rte.libc                6.1.3.11        ROOT        REJECT      SUCCESSbos.rte.libc                6.1.3.11        USR         REJECT      SUCCESSADDsystem() = f1e9b490bos.rte.libc                6.1.3.11        USR         APPLY       SUCCESSbos.rte.libc                6.1.3.11        ROOT        APPLY       SUCCESS44con, London, 2012 Tim Brown 23 Portcullis Computer Security Ltd
  24. 24. # Hardened malloc()_ # Check out David Litchfields paper  “Heap overflows on AIX 5” # Also, “Enhancements in AIX 5L  Version 5.3 for application  development” mentions a number of  enhancements / possible areas of  concern44con, London, 2012 Tim Brown 24 Portcullis Computer Security Ltd
  25. 25. # Hardened malloc() ++_$ ls ­la malloc­rwsr­xr­x    1 root     system        53648 Sep 04 22:41 malloc$ MALLOCTYPE=watson$ export MALLOCTYPE$ ./mallocblah$ MALLOCDEBUG=catch_overflow ./mallocSegmentation fault44con, London, 2012 Tim Brown 25 Portcullis Computer Security Ltd
  26. 26. # Enterprise “features”_ # Data # The real value of your system # “Interesting” code # More code is always bad, but OS  code at least benefits more from  the “many eyes” principal –  assuming the “many eyes” are  actually looking – your  enterprise app may not44con, London, 2012 Tim Brown 26 Portcullis Computer Security Ltd
  27. 27. # “Interesting” code_ # Backdoors # Proprietary protocols # Embedded library copies # Changes to user environment # Insecure API usage # Missing anti­exploitation  techniques # Key material and entropy # Java :­)44con, London, 2012 Tim Brown 27 Portcullis Computer Security Ltd
  28. 28. # Practising unsafe DevOps_ # Build infrastructure # Cron, cron, cron # .rhosts # Sudo :­) # Init and inetd # User provisioning and access  management # Key material # NFS44con, London, 2012 Tim Brown 28 Portcullis Computer Security Ltd
  29. 29. # Cron, cron, cron_ # Your shell script just ran over my  shadow# grep victim /var/spool/cron/crontabs/*/var/spool/cron/crontabs/root:0 01 * * * /opt/victim/start.sh# cat /opt/victim/start.sh...umask 000OUTDIR=/tmp...service=/opt/victim/service...OUTFILE="${OUTDIR}/${DATE}_${TIME}.log"...$service ­o ${OUTFILE}44con, London, 2012 Tim Brown 29 Portcullis Computer Security Ltd
  30. 30. # In the lab_ # Systems # Books # Code # Tools # Techniques44con, London, 2012 Tim Brown 30 Portcullis Computer Security Ltd
  31. 31. # Systems_ # Buy or emulate the systems you see  in the wild # Better still, buy or emulate those  you dont – theyre still there!44con, London, 2012 Tim Brown 31 Portcullis Computer Security Ltd
  32. 32. # Books_ # If you understand how one OS works,  the next OS you look at might just  work in a similar way (with similar  bugs / different edge cases): # Vendor web sites # Man pages # Solaris Systems Programming and  Solaris Internals are great books44con, London, 2012 Tim Brown 32 Portcullis Computer Security Ltd
  33. 33. # Code_ # Next time code leaks, take a look,  your adversaries will # Identify lists like oss­security,  fewer size contests mean more  signal and less noise # .jar files are human readable44con, London, 2012 Tim Brown 33 Portcullis Computer Security Ltd
  34. 34. # Tools_ # strings and grep # truss and strace # DTrace and SystemTap # objdump, GDB and IDA # jad, JD­GUI and friends # Compilers # checksec.sh (for * GNU/Linux) # unix­privesc­check44con, London, 2012 Tim Brown 34 Portcullis Computer Security Ltd
  35. 35. # Techniques_ # Sometimes the same crash on another  OS yields greater joy – the Solaris  stack for a certain RPC service  isnt munged # SetUID binaries can often be  exploited via obscure enviroment  variables – ++ local roots for IBM  products :) # Old techniques can be reapplied –  glob() style bugs still afflict AIX44con, London, 2012 Tim Brown 35 Portcullis Computer Security Ltd
  36. 36. # Techniques ++_ # Auditing (the other type) will  catch stuff you might miss # Decompile .jar files # Check what libraries $enterpriseapp  ships with (dont forget to check  for embedded JVMs)44con, London, 2012 Tim Brown 36 Portcullis Computer Security Ltd
  37. 37. # Techniques ++_ # Check against Microsofts banned  API list # Check for anti­exploitation  mitigations # DT_RPATH AKA Import File Strings44con, London, 2012 Tim Brown 37 Portcullis Computer Security Ltd
  38. 38. # DT_RPATH AKA Import File  Strings_# dump ­Hv kbbacf1kbbacf1:                        ***Loader Section***                      Loader Header InformationVERSION#         #SYMtableENT     #RELOCent        LENidSTR0x00000001       0x0000000f       0x0000001c       0x000000b5       #IMPfilID        OFFidSTR         LENstrTBL        OFFstrTBL0x00000007       0x000002d8       0x00000063       0x0000038d                               ***Import File Strings***INDEX  PATH                          BASE                MEMBER              0      /usr/lib:/lib::/opt/IBM/ITM/tmaitm6/links/aix51/lib:.:./lib:../lib::44con, London, 2012 Tim Brown 38 Portcullis Computer Security Ltd
  39. 39. # unix­privesc­check_ # Originally conceived by  @pentestmonkey # Im working on 2.x # Code will be made real soon now!44con, London, 2012 Tim Brown 39 Portcullis Computer Security Ltd
  40. 40. # Conclusions_ # Ask yourself “who analysed the  OS?”; “do I care about segregation  of roles?”; “do I know what my  applications are doing?”; “do I  care what my DevOps teams are  bringing to the party?” # If these questions matter, dont  audit, whitebox44con, London, 2012 Tim Brown 40 Portcullis Computer Security Ltd
  41. 41. # Questions_ < /dev/audience44con, London, 2012 Tim Brown 41 Portcullis Computer Security Ltd

×